package run.halo.app.service.front;

import me.zhyd.oauth.model.AuthUser;
import run.halo.app.common.R;
import run.halo.app.model.dto.front.BindMobileDTO;
import run.halo.app.model.dto.front.LoginDTO;
import run.halo.app.model.dto.front.MobileMsgDTO;
import run.halo.app.model.entity.front.Customer;
import run.halo.app.security.token.AuthToken;

public interface FrontService {

    /**
     * 保存登录用户信息
     * @param user
     * @return
     */
    Customer saveCustomer(AuthUser user);

    /**
     * 缓存用户登录信息
     * @param customer
     */
    AuthToken cacheAuthCustomer(Customer customer);

    /**
     * 校验短信验证码
     * @param msgDTO
     * @return
     */
    R<AuthToken> checkMobileCode(MobileMsgDTO msgDTO);

    R<AuthToken> bindMobile(BindMobileDTO bindMobileDTO);

    R<AuthToken> miniAppLogin(LoginDTO dto);

    R<String> createWxaCode(String path);

    R<?> checkLogin(String uuid);
}
